Efficient distribution of digital health programs for research studies

ABSTRACT

A system and method for dynamically adjusting the architecture of an application on a device based on user responsiveness. The application determines relevant changes to apply based on the user&#39;s interactivity with the application through a plurality of inputs and data analysis. The application adapts the architecture to provide preferred application containers, features, workflow, and interface elements. User data, indicating characteristics of the user, is obtained and used to select adaptions to the user architecture through selection of specific application container units, application features, workflow segments and other elements. The application determines and selects the appropriate application container units, application features, and workflow segments to vary the features available, the content displayed, the workflow of the application, the form of the content and the interface for different users. The dynamic architecture ensures continued engagement with the application by displaying interactive elements on an individual level on the device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.16/942,833, filed Jul. 30, 2020, now U.S. Pat. No. 11,409,417, which isa continuation of U.S. application Ser. No. 16/101,261, filed Aug. 10,2018, now U.S. Pat. No. 10,775,974, the entire contents of which areincorporated by reference.

FIELD OF THE INVENTION

This present invention relates to the field of user responsive dynamicarchitecture (URDA) and more specifically to user responsive dynamicarchitecture that senses changes through a plurality of networked inputsand adapts real-time through-out its continued engagement on apersonalized individual level.

BACKGROUND OF THE INVENTION

Current client-side applications and related architectures providelimited ability to deploy an application to a device (i.e. mobile phone)which can be deployed and used by many users, and yet flexible enough tovary the visual characteristics, the functional aspects, and the flow orof the application to each individual user.

As seen in FIG. 1 , a standard deployed client-side system 5 includes anarchitecture 20 of a client device and application with two primaryinputs. The first input is the user 10. The user 10 input effects thepresentation 22 of the application, which has user interface components24 that presents data from the physical user and offers ways for theuser to respond. The presentation 22 also includes the user interfaceprocess components 26.

The second input is an external system 14 that is made up of one or moredevices that collect data (i.e. sensing devices) or service consumers16. The external systems 14 are transferred into the service layer 30using the service interfaces 32 (i.e. an API to mobile phone orlibrary). The services layer 30 then decouples the information andtranslates a message using the message types 34. After the message type34 decouples the information it is placed into the system 5 to enablelogical decision making by the app. The services layer 30 has theability to pass the decoupled information to the business layer 40 orthe data layer 50. The business layer 40 includes the application facade42 on the client or user device 20, and the business workflow 44,business components 46 and business entities 48. The data layer 50 iscomposed of data access components 52, data helpers/utilities 54, andservice agents and tools 56. There is local data 58 stored on the clientdevice and application 20.

The cross-cutting section 60 of the device and application are aspectsneeded across the entire system 5. The cross-cutting section 60 includessecurity 62, configuration/operational management 64, communication 66,and regulatory 68. These layers 62, 64, 66, 68 can hold non-functionalrequirements, that are dependent on the area in which the application isbeing utilized or the functional needs of the device 20. Security 62 iswhat is needed for the application and its data in-flight and at-rest toenforce policies, privacy and authentication rules.Configuration/Operational management 64 is what is needed to run theapplication across different regions, deployments endpoints andplatforms utilized for distributions and defines defaults forrequirements. Communication 66 is related to application interfacerequirements and what is needed for transport and application levelcommunication in controlling the bandwidth, retries and authenticationneeds of the system, in addition this may be the user facing languagethe device displays, depending on the operational managementsdetermination about location. Regulatory 68 may be the local regulationand policies enforcement as required to be followed in the specificregion the application is operating in which can define default policiesduring initial use and be dynamically adjusted based on movement by theuser through different geographies.

In addition, the client-loaded equipment and application 20 may interactwith a remote exchange 19 between the deployed application and theremote server infrastructure 70. The remote server infrastructure 70 mayconsist of multiple endpoints including one or more remote data sources71 and web services 75. The remote data sources layer 71 gives dataaccess 73 to external data storage 70 which is used as a data lakecloud-based storage embodying the local data 58 across multipledeployments of the client-loaded equipment and application 20. The webservice layer 75 may pass through the service agents/tools 56 of theapplication and is often seen as the notification and service agent tomanage data across deployments and the availability of the remote datasources 71. The remote server's web services 75 is often an externalsystem or data synchronization 79 from the back-end side of thecloud-based server used in logging, analytics, and data synchronizationacross deployments. Web Services 75 includes services 77 andsynchronization 79.

However, current systems often provide a single implementation specificapplication for a given approach leaving little room for adaptation ofthe client application based on the user. This results in a multipledeployments of single implementation specific applications albeit to acommon remote server infrastructure, sometimes known as suite ofapplications. These applications generate many requests to the sameserver, utilize large sections of code that is duplicated acrossdeployments with no provision to minimize server calls, storage space,and consolidation needs for storage space, processing and bandwidth.Therefore, technical improvements and solutions are needed to overcomethese technical problems while accommodating the evolving needs of usersin order to better manage memory, storage, processing, networkutilization, quality, risk of security exploits and usability through amanaged footprint in terms of scope and scale. The systems and methodsof the present invention provide such improvements.

SUMMARY OF INVENTION

The present invention provides a computing device comprised of at leastone processor and computer-readable storage devices for storinginstructions that, when the instructions are executed by the processors,cause the computing device to perform operations comprising: (a)receiving, by the computing device and over a computer network, a firstset of instructions stored on the computer-readable devices, the firstset of instructions including an initial application configuration, atleast one application container unit, a plurality of application featureunits, and a plurality of application workflow segments; (b) the initialapplication configuration identifying a first application container unit(“ACU”), a first set of application feature units (“AFU”s) from theplurality of AFUs, and a first workflow set from the plurality ofworkflow segments for the computing device to use; (c) capturing userinteraction data with the initial application configuration; (d)analyzing the user interaction data with the initial applicationconfiguration; and (e) updating the initial application configurationbased on the user interaction data to a second applicationconfiguration, which causes the set of instructions to use a second setof AFUs from the plurality of AFUs and a second workflow set from theplurality of workflow segments. The instructions may further compriseretrieving an additional ACU, AFU, or workflow segment from the computernetwork and updating the application configuration with the retrievedACU, AFU, or workflow segment by updating the application configurationto utilize the retrieved ACU, AFU or workflow segment. The instructionsmay further comprise retrieving an updated version of an ACU, AFU, orworkflow segment from the computer network and updating the applicationconfiguration with the updated version of the ACU, AFU, or workflowsegment. The application configuration may be as portion or subset ofcode and updating the application configuration consists of updating thesubset of code. The application configuration may be contained within aconfiguration file and updating the application configuration consistsof updating the configuration file. The application configuration may becontained within a reference table and updating the applicationconfiguration consists of updating the reference table.

The present invention may also provide a method performed by a computersystem, the method comprising various steps including: (a) transmitting,by the computer system, a software application containing an applicationconfiguration, at least one application container unit, a plurality ofapplication feature units and a plurality of workflow segments, to aremote device; (b) assigning, within the application configuration, aninitial application container unit selected from the at least oneapplication container unit, at least one initial application featureunit selected from the plurality of application feature units, at leastone initial workflow segment selected from the plurality of workflowsegments; (c) capturing user interaction data during use of the softwareapplication on the remote device; (d) analyzing the user interactiondata; (e) determining a preferred configuration of ACU, AFU, workflow;and (f) updating the configuration code portion, based on the userinteraction data, for the software application to utilize a second ACUfrom the at least one ACU, a second AFU from the plurality of AFUs, or asecond workflow set from the plurality of workflow segments. Additionalsteps may include retrieving an additional ACU, AFU, or workflow segmentfrom a computer network and updating the application configuration toutilize the retrieved ACU, AFU, or workflow segment. Further, theinvention may include the additional step of updating or retrieving anupdated version of an ACU, AFU, or workflow segment already resident onthe device from the computer network and updating the applicationconfiguration with the updated version of the ACU, AFU, or workflowsegment. The invention may include the additional set of updating theapplication configuration to use a new or updated ACU, AFU, or workflowsegment consists of updating the subset of code, updating aconfiguration file, or updating a reference table to update theapplication configuration.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention can be more fully understood by reading thefollowing detailed description together with the accompanying drawings,in which like reference indicators are used to designate like elements,and in which:

FIG. 1 depicts a standard architecture of a client device with aninstalled client software application.

FIG. 2 depicts an exemplary architecture of a client device softwareapplication.

FIG. 3 depicts an installable deployable application on the device.

FIG. 4 depicts high-level system diagram of an illustrative embodimentof the present invention.

FIG. 5 depicts a more detailed system diagram of an illustrativeembodiment of the present invention.

FIG. 6 depicts a flow diagram utilized by an illustrative embodimentemployed by the present invention.

FIG. 7 depicts an additional flow diagram of how the ACU and AFU aremodified and retrieved from the remote server of the present invention.

FIG. 8 depicts a custom template of an illustrative embodiment of thepresent invention.

FIG. 9 depicts a custom flow of an illustrative embodiment of thepresent invention

FIG. 10 depicts an application size and shape display of the presentinvention.

FIG. 11 depicts an unexecuted AFU within the ACU.

FIG. 12 depicts an evolving UI example.

FIG. 13 depicts the ACU manager

FIG. 14 depicts an ACU and AFU user storage.

FIG. 15 depicts an ACU and AFU stock distribution storage center.

FIG. 16 depicts the flow process of the personalization of the ACU andAFU.

FIG. 17 depicts a flow chart of how the workflow is modified.

FIG. 18 depicts the process of modifying ACU, AFU and workflow on a userdevice.

FIG. 19 depicts a breakdown of the download change/shift flow of theapplication over its life.

FIG. 20 depicts a base deployment installation.

FIG. 21 depicts a basic program selection.

FIG. 22 depicts a personality selection occurring.

FIG. 23 depicts personality adjustment.

FIG. 24 depicts a breakdown of network usage.

FIG. 25 depicts the encapsulated traffic between the server and thedevice.

FIG. 26 depicts a code DNA module.

FIG. 27 depicts stitched together code DNA modules their interactionwith configuration files and resource files.

FIG. 28 depicts the pattern files of connected code DNA modules.

FIG. 29 provides a visualization of an update to an application ondevice as AFUs are updates using code modules.

FIG. 30 depicts activated and deactivated code DNA modules of differentAFUs.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Hereinafter, aspects of the methods and associated systems in accordancewith various embodiments of the invention will be described. As usedherein, any term in the singular may be interpreted to be in the plural,and alternatively, any term in the plural may be interpreted to be inthe singular. It is appreciated that features of one embodiment asdescribed herein may be used in conjunction with other embodiments. Thepresent invention can be more fully understood by reading the followingdetailed description together with the accompanying drawings (FIGS. 2-15), in which like reference indicators are used to designate likeelements.

Improved Client-Side Architecture Structure

FIG. 2 shows the exemplary design of the user responsive dynamicarchitecture system 105, providing a client architecture 120 of a clientdevice and application as described herein.

There are two direct inputs into the application, the users 110 andexternal systems 114. The user can be a single user 110 or multipleusers112 of a device. The user inputs 110, 112 can affect thepresentation layer 122, which has user interface components 124 and UIprocess components 126. This exemplary system design 105 allows formultiple users 112 to use the same private device and determine based ondevice information what information to store and when to reset theapplication to secure information.

The external systems 114 are sensing devices that directly transfer datainto the application container unit (ACU) 130 or the application featureunit (AFU) 135 depending on the type of sensing device connected. Theexternal systems 114 can include service consumers 116, passively orlocally sensed data 117 from the device, and wireless external sensingof data from disparate external device sources and transports 118including Bluetooth, Near-Field Communication, Wi-Fi, Zigbee, ANT andother device application sharing data. The data from the externalsystems 114 is transferred and the AFU 135 and ACU 130 are able to readdifferent sensors with different functionalities based on which sensoris installed on the user device. The AFU 135 and ACU 130 layer allow theinterjection of logic between what data is transferred and what data ispresented based on specific users. In choosing which business andservices to run based on the external systems input 114 a variablenumber of services and business layers 140, 141, 142, 143, 144, 145 areavailable and sections from each layer are stitched together to make upthe optimal AFU 135 and ACU 130 for the current user. Depending on thedata obtained from the sensing devices 117, 118 the AFU 135 and ACU 130will select any variable number of interfaces 131, 136, workflows 132,137, services 133, 138 and business layers 134, 139 that are optimizedfor the specific user. The AFU 135 and ACU 130 implemented or activewithin the installable application on the client device 120 are changedand chosen based on user inputs and events as well as the systems smartmachine learning and testing for an optimized deployment.

The AFU 135 and ACU 130 transfer information to and from the data layer151. The data layer 151 is composed of data access components 152, datahelpers/utilities 153, and service agents and tools 154. The purpose ofthis layer is to support data usage, latency and bandwidth requirements.This data is accessible to help fulfil the higher layer needs of ACU 130and AFU 135. Local data 158 is stored on the client device 120.

What will be further detailed below, when the application andarchitecture of the present invention are first installed the initialACU 130 and AFU 135 are determined through the registration process. Theregistration process can be curated by the user's selection choices whenthe user first installs the application deployment on the device, orthrough a pre-configuration, such as a sign up/invite code that assistin a preselected choice of the starting ACU 130 (i.e. a specific invitecode may be given through a healthcare professional's recommendation totailor the choices first offered specific to the user perceived needs).The initial selected or identified ACU 130 and AFU 135 will be furtheroptimized through usage of the application to determine the correctservices and business layer the device will choose to translate the userinput.

The cross-cutting section 160 of the client architecture 120 is managedby the ACU Manager 161. The ACU Manager 161 oversees the AFU Managers163, Security 165, configuration/operation management 162, communication164, and regulatory 168. The ACU Manager 161 manages each cross-cuttinglayer 165, 162, 164, 163, 168 based on the particular environment of thedevice (i.e. whether or not the device is a public tablet used in apublic place that private data should not be stored on).

The remote server infrastructure 170 includes remote data sources 171,web services 175 and URDA configuration 180. The URDA configuration 180holds the stock distribution storage center utilities 182 and thepersonalization tools 183 and management cross cutting 185. The stockdistribution storage center 182 provides the ability to place all thedifferent aspects of the configured application that is to be deployedglobally into separate packages that the application can be individuallyturned on and off as it is customized further through user interaction,administrative provisioning and machine learning. This allows a singledeployment of the application across a multitude of platforms from webto mobile to privately developed solutions like kiosks and gatewaydevices, such as keeping the same bundle ID in the app store can givedevelopment and operations to the ability to do controlled launches andmeet the requirements of different geographies while creating astreamline efficient application. The entire application deployment isthen one architecture that is localized to allow for greater applicationefficiency. The stock distribution storage center allows different AFUs135 to be turned off without effecting the deployed application as awhole.

When the application and related architecture are first installed on theuser device, the initial deployment includes an ACU 130 and AFU 135 andone or more initial layers (i.e. 140, 141) which are available to theACU 130 and AFU 135. These initial layers 140, 141 will be added toafter the registration process and initial user interaction. Inaddition, the presentation layer 122, Data layer 151, and cross-cuttingsection 160 are all present in an initial deployment form and may beupdated or enhanced after initial deployment.

The exemplary client architecture is not limited to a mobile applicationbut may be placed on other processor-based devices such as wearables,gateway hubs, and web servers accessible through browser interfaces andother utilities. The customization offered to the user is not limited toa mobile screen display, but rather any electronic method utilized toprovide discernable access in any medium such as file output, audiblefeedback, vibration, sight through drawn or lights and arrangement of,smell or release of, and mouth-based interfaces.

The present invention provides an exemplary Improved Client-SideArchitecture which includes a computing device comprising at least oneprocessor, and one or more computer-readable storage devices for storinginstructions. The instructions when executed by the processor, cause thecomputing device to perform operations comprising of receiving ormodifying/reassigning, by the computing device and over a computernetwork, a set of instructions stored on the computer-readable devices.The first set of instructions when received include at least one ACU, aplurality of AFUs, and a plurality of application workflow segments. Theset of instructions identifying a first ACU, a first set of AFUs fromthe plurality of AFUs, and a first workflow set from the plurality ofworkflow segments for the computing device to use. Whenmodifying/reassigning the set of instructions— during continued/ongoingusage of the application, based on user data, for the computing deviceto use a second ACU, a second set of AFUs from the plurality of AFUs, ora second workflow set from the plurality of workflow segments(ACU/AFU/workflow resident on the computing device). The presentinvention provides a dynamic real time on the fly change ofACU/AFU/workflow without needing to run a software update to update theapplication to provide updated ACU/AFU/workflows.

FIG. 3 shows the installable-deployable application 120 on the device.The deployable application 120 can run a single-ACU 203 or a multi-ACU205. The single-ACU 203 has an optional ACU manager 161 that overseesthe AFU manager 163. AFU manager 163 manages AFU 235, 236, 237. The AFUmanager 163 works with ACU 130 to display the optimal content on theuser device. The system will use the ACU manager 161 in and theapplication interface 124 to determine what AFU or ACU to displayinformation on the user device.

The deployable application 120 may also run a multi-ACU 205. Themulti-ACU 205 has an ACU manager 161 that manages downloadable ACU 170,downloadable ACU 175, and the AFU manger 165. Downloadable ACU 170includes AFU manager 230 which runs AFU 235, 236, 237. Downloadable ACU175 includes AFU manager 240 that runs AFU 245, 246, 247. The AFUmanager 165 runs AFU 235, 236, 237, 245, 246, 247. The exemplary modelmay also include a global AFU manager 165 that cross cuts the differentdownloadable ACUs 170, 175 to manage all AFUs on the deployableapplication 205. The ACU manager 161 interacts with applicationinterface 124 to display the appropriate ACU and AFU on the user device.

The Application Container Unit (ACU) 230 can exhibit a series of screensand templates of which can be actionable for sub-application orfeatures, aka Application “Feature” Unit (AFU). Some features may bestatically defined and not configurable, where other may also include asubset of screen maps and templates that can be configurable. Thisconfigurability is customizable on the backend servers to allowmodifications to standardized workflows. If no configurability isavailable on the server, then no configurability will exist on themobile.

As seen in FIG. 4 , the present invention provides a system 250 whichincludes a server or cloud-based system 251 with local and remotestorage capabilities. The server storage system 251 builds a personalitymodel 252 for each recipient based on the appearance relevancy 253,feature relevancy 254, and the recipient's personalized profile 255related to application model 256. The system 250 analyzes theapplication model 256 as a function of configurations 257 that have beenprovided to the system 250. The system 250 also includes one or moreclient devices 263 running one or more software applications. The clientdevice 263 communicates with the server through one or morecommunication paths or links 262. The software application 263 workswith the server-based system 250 to build and present URDA containers264 based on the URDA application 265, URDA application configurationfile 266, and URDA personality module 267.

Through use of a myriad of known and captured data, training, varyingreal-world sensors, recipient interaction, and personality data andanalysis, the system determines relevancy, continuously adjusts, andbuilds a real-time user or personality profile of the recipient orrecipient of dynamic architecture endpoints. The real-time personalityprofile is then used to select, adjust, or build the style and wordingof the content and presentation or graphical user interface of thecontent to the recipient.

The flexibility of the system allows ACU 130 and AFU 135 elementsdisplayed to adapt automatically dependent on the calibration process.The calibration process can include both explicitly defined businessrules and/or AI learning algorithms. If the application data input showsthe user has shaky hands the AFU 135 may implement larger buttons. Ifthe user has cognitive impairment the display may adapt to a lowerreading level content or the AFU 135 may remove textual elements anddisplay a larger image in a different position. If the user is a visuallearner, the AFU 135 may adapt by swapping a base image with a diagram.If the user has a personality that likes hard challenges, the AFU 135may change the question to a harder one. If the user's personalityresponds better to comfort, the shapes of the buttons will adapt tobecome more rounded. If the user personality responds to certain colors,the AFU 135 may implement the color style accordingly. If the user iscolor blind, the AFU 135 may adapt the color style accordingly.

Network

As shown in FIG. 5 , the System 300 utilizes significant amounts of datato adapt the dynamic architecture, e.g. adapting the applicationarchitecture using real time data. More specifically, dynamic refers tothe ability of the present invention to change or alter the way theapplication functions, its interface, features, content, and flow bymodifying the ACUs, AFUs, and workflow used by the application. TheNetwork 300 of the present invention includes the User ResponsiveDynamic Architecture 302 which is connected via internet 304 or othercommunication methods to numerous devices and data. These devices anddata segments include application devices and data 310, relationaldevices and data 320, recipient measurement devices data 330, externalcrowdsourced data 340, internal or system crowdsourced recipient data350, and crowdsourced service provider devices and data 360. The UserResponsive Dynamic Architecture 302 is also accessible by one or moreadmins and users having roles and permissions as set forth in thesystems roles and permissions sub-system 306.

Within the application data 310, therein includes application attributes311, accessibility options 312, UI configuration 313, relevancy defaultmappings 314, and trainer devices 315, such as mobile devices, andtablets.

The relational data 320 includes genomics, genome mapping and genesequencing data 322, genealogy (genes, carrier, traits, risks) andancestry data 324, and personality mapping data 326. Personality mappingdata 326 may include data on personality types, such as whether arecipient is open to experiences, consciousness, extroversion,agreeableness, neuroticism, and other known types.

The recipient measurement section 330 includes health sensors 331,proximity sensors 332, environmental sensors 333, background data 334,personality data (type matching) 335, and recipient devices 336. Healthsensors 331 might include things like heart rate and weight monitoringof data and would provide physiological data measurements. The proximitysensors 332 might include things like location sensors and devices withlocation tracking data and would provide activity related datameasurements. The environmental sensor 333 would include sensorsmeasuring temperature, time, passively sensed, ancillary, or otherdirectly report data sources relevant to contextual cues and measuredenvironment data. The background and recipient historical data 334 mightinclude specific longitudinal history of the recipient, includinggenomics, and family history. The personality data 335 might includepersonality type matching information. Recipient devices 336 mightinclude the types of devices such as mobile, tablet, pc, the operatingsystems within those devices, and how they are used and the device as asensor.

The external crowdsourced section 340 might include real time data 342,medical data 344 and location data 346. The real time data 342 mightinclude data such as weather or trending news, and would provideeconomic related data measurements. The medical data 344 might includehistorical data, trending data in terms of population (upward anddownward risks, emerging, outbreaks, epidemic, and pandemic) anddemographic data. The location data 346 might include occurrence data,trending data, and interests.

In addition, the system may include internal or system crowdsourced data350 of recipients include relevancy mapping 352, personality mapping354, and recipient devices 356.

Further, the crowdsourced service provider data 360 may include directcare 362, public safety 364, public health 366, and network health 368.The direct care 362 would include devices and data for direct careprovides such as information that is de-identified by a recipient'sdoctor or physician's assistant. Public safety 364 would include devicesand data such as police and fire or water and power through varyingchannels like public broadcast information. Public health 366 wouldinclude devices and data such as local hospitals, ambulatory and CDCinformation. The network health 368 would include devices and data basedon internet connections, internet or provider health, uptime, and othersimilar network and communication-based information.

The network 300 includes interaction amongst application section 310,relational section 320, recipient measurement section 330, externalcrowdsourced section 340, internal crowdsourced recipient section 350,and crowdsourced service provider section 360 as used by the UserResponsive Dynamic Architecture 302 to help formulate the ideal displayfor different users based on relevancy mapping 352, personality mapping354 and other recipient-based elements to provide display of contentrelevant and related to the specific recipient.

In FIG. 6 a super user 402 is permitted to deploy new applications 410to the mobile application markets and the server. Once deployed anypermitted admin 404 can modify the installation server to configureprogram 411 to match with the expected program and configure personality412 to match with personality's responsiveness to a given program. Theadmin 404 configured program 411 creates an application configuration432 on the backend servers 430. The created application configuration432 and the configure personalities 412 receive program updates 434 inthe backend servers. The program updates generate scripts 436 and willcollect data 438.

When a user 406 of the system downloads the application 413 or updates,they may login 415 to the system (alternatively, this login can bebypassed with out of bands security, where the security could beconfirmed based on the uniqueness of the device utilized with theapplication like a unique device identifier for the hardware.) The user406 then receives a one-time update with script/files available programs422 to the full configuration and templates available from the backendserver 430 program updates 434. The mobile application 420 is updatedwith the configuration file that describes the sequencing andpersonalized layout to the individual and selects the appropriate script424 from the generated scripts 436 for the user and collects data 426.Additional updates are provided as needed or if the system becomescorrupted. After the user logs in 414 the sensor and input data 415 arecollected 426 and used to personalize the application.

FIG. 7 depicts the flow of the system 450 when modifying, storing, andretrieving ACU 472 and AFU 471 configurations from the remote server andupdating the ACUs 472 and AFUs 471 on the user device. The admin 404defines/configures new programs 452 and configures personalization 454.The configured new program 452 generates application configuration instep 461 and are used to create AFU file 471 and ACU file 472. The AFU471 and ACU 472 along with base personalization mapping 462 aretransferred to ACU storage stock distribution storage center 482, whichis downloaded by the user 406. Once the user device receives thedownloaded definition or configuration 492 the application reviews themeasured sensor and input data 493 and then, based on that data,receives updated ACUs and AFUs 494 based on measured sensor and inputdata 493. The measured sensor and input data 493 is compared againstpersonality changes in 463 and the information is transferred to ACUuser storage 486. ACU user storage is compared against storage changes465 and this updates the ACUs and AFUs 494. The ACU user storage alsocompares personalities and storage 464 with the ACU personalized storage484. The ACU personalized storage 484 is updated in part by theconfigured personalization 454 done by the admin 404 and uses basepersonalization mapping 462.

Machine Learning

The machine 408 is programmed to modify configurations 456 and createexperiments and check ranking 466 of different variables. The machine408 may be considered a variable artificial intelligent machine adaptingand learning environment that is attempting to test new experiments tocorrelate trends across multiple users and revise personality mapping toconfirm best approaches for usability through a series of feedback loopson access and statistical convergences. These experiments are stored inACU experiment storage 488, the experiments are compared to the newlycreated experiments to check which variables are significant. After theexperiment is created and checked 466 the information is transferred toACU user storage 486 and used to update ACUs and AFUs. The machine 408can be an augmented intelligence that is able to control for one or twovariables while altering others to determine what may improve userinvolvement and experience. The augmented intelligence looks at whetheror not a user responds better when there is variation in how theinformation is presented, or what color it is presented in, and if theuser responds better what is the best interval of variation for theparticular user to ensure optimal interaction. The augmentedintelligence will be programmed with a large list of variables andcontrol variables and test others based on user interaction. Thisaugmented intelligence as utility would adapt to changing artificialintelligent systems to manage more variables and comparative systems asthe data lake yields new trends and classifiers to individual type aspsychology is redefined based on physiological, environmental andgenomic yields new findings. A specific example of the type ofexperiments the machine may run is for User A data in the application isnormally displayed according to user preference, i.e. a specific coloror layout. The machine learning will test whether modifications on howthe data is presented have an effect and what different modifications doto increase user engagement. So if a user normally likes his informationpresented with a green background and the information is depicted inlarge text files the machine may note that the user stops interactingwith the application after 4 different screens, and the computer maychange the color on the screen to blue to grab the user attention, orswitch to a pictorial depiction. The machine will study how often User Aneeds a change and what is the optimal change to ensure consistent andattentive engagement with the application.

The present invention also provides a system capable of learning auser's preferences, as well as conducting tests with individual users orusers across the network. The system makes use of machine learning andartificial intelligent testing systems to provide user updates andACU/AFU/workflow changes. The system provides a computing devicecomprising at least one processor and one or more computer-readablestorage devices for storing instructions. The instructions when executedby processor(s), cause the computing device to receive, modify,analyze/store, and revert changes back to original. Moreover, when thedevice receives, by the computing device and over a computer network, aset of instructions, the set of instructions including at least oneapplication container unit, a plurality of application feature units,and a plurality of application workflow segments. The computing devicedefines the set of instructions to utilize a first ACU, a first set ofAFUs from a plurality of AFUs, and a first workflow set from a pluralityof workflow segments. Further, the system allows the conducting of atest by modifying the set of instructions (client device orACU/AFU/workflow) of the computing device to use a second ACU, a secondset of AFUs, or a second workflow set. The system then analyzes andstores the user's usage data from the test; and then can reverting theset of instructions to use the first ACU, first set of AFUs, or firstworkflow set from the plurality of workflow segments. Additionally, thesystem can update the ACU, AFUs, or workflow segments to those revealedby the test to be optimal or preferred.

Workflow/Interface

FIG. 8 depicts a custom template 500 of the display the ACU manager willpopulate with ACUs and AFUs. A template defines the construct in termsof associated and inherited rules/requirements for the display,templates can be defined as unique to a screen or across as many screensas desired by the admin or permissible user. The custom template 500example has a template interface navigation style 502 that dictates howeverything is laid out on the display screen. Displayed on the screenare application shortcuts and application groups. The applicationshortcuts are located at the top 504, the side 506 and the bottom 508.The side application shortcut 506 defines static small visual componentswith text. The application groups define live visual components with notext. Applications groups may be placed on top of display screen 510, inthe middle of the screen 512 or at the bottom of the screen 514.

FIG. 9 depicts a custom flow storyboard 520 of the present invention forACUs and AFUs. A storyboard defines a connected set of actionable UIelements that a permissible user can explore. The storyboard 520 showsthe decision-making process done by the ACUs manager to determine AFU orACU to display based on the user. The storyboard 520 starts with path 1521 which triggers a screen showing path 2P 523 at a defined time. Path2P 523 will trigger a screen showing path 3P 524 and path 2P.A1 525 andpath 2P.A2 526 depending on user preferences, or will exit the flow.Path 3P 524 can return to the screen with path 2P 524. Path 2P.A1 525and path 2P.A2 526 are alternate flows that can trigger pathways for theACU manager to follow and determine the appropriate display. Path 2P.A1525 can trigger the screen with path 3P.A1 527 or can exit the flow.Path 3P.A1 527 can trigger a screen with path 4P.A1 528 or it can returnto path 2P. If the user chooses the alternative path screen 2P.A2 526can trigger 3P.A2 529 or it can exit. Path 3P.A2 529 can return the userto screen 2P to start the storyboard flow over. The storyboard sequencecan be modified and altered to change with the needs of the admin andthe system detected needs of the permissible user.

FIG. 10 depicts an application unit size and shape display example 550of the present invention for ACUs and AFUs. Applications are actionablefeatures that allow the permissible user to interact with componentsoutline in an ACU and an AFU comprised of storyboards and templates.Applications can report information before it is interacted with and canvary in sizes and shapes. Applications can be turned on or off on demandand can appear in any template in an unexecuted or executed state. In anunexecuted state, the individual does not navigate away from theexisting screen or template. The individual can see the application asan image or a live feed with reports and can even navigate through theaccessible reports as available by the application. An application notexecuted 551 can be displayed using varying size and shaped depending onthe preferences of the user. The application visual component may besmall 553, medium 554, or large 555 square. The display can be arectangular visual component 557 or 558 that may display the title ofthe app and live content or a widget depending on the user's sizepreference. Once an application is executed 561 the application willallow injection of input data by the user and can be visualized in awindowed application 563, a full-size application 566 within thetemplate navigation 565 provisioned, or as a full-screen application 568that appear across the full screen of the container broadcasted to theuser equipment.

FIG. 11 depicts an unexecuted AFU within the ACU and variations of howit can be displayed in an unexecuted and executed manner. This UItemplate can be selected by an admin to prepare the content and to drivechanges seen on the users existing downloaded ACU. ACU display 601 showsstatic AFU 603 in an unexecuted state and the executed full screen 605that consist of a title, subtitle, body of text with an image andquestion with response options. ACU display 607 shows an interactive AFU609 and the executed full screen 611.

FIG. 12 depicts an evolving UI example. In addition to uses cases thatadapt specific UI elements on a screen, the invention also drives theentire UI template that is utilized for that particular user or set ofusers. This shift in template definition creates linkage to an AFU thatcan be selected from the ACU. Alternatively, this could happen withinthe AFU itself. The user interface displays ACU 627 on the screen. TheACU 627 has 6 different AFUs displayed. Depending on which AFU isselected the use case will switch which UI template is presented to theuser. Thus, if AFU 628 is executed the UI will display UI template 630,which has a title 631, a subtitle 632, the body of text 633, an image634, and a question and response section 635. If AFU 629 is selected theUI will execute UI template 640, which has a title 631, group chatfunction 642, and question and response section 635. The different UItemplates displayed may be explicitly requested by the user, may berecommended by the system and the user accepts, or the system mayautomatically switch based on inferred usage patterns.

FIG. 13 depicts an ACU manager 650, the ACU Manager 650 oversees whenthe user is presented with multiple services through the application.These services could be for unique or multiple user credentials andcould be for the same or multiple systems, where systems define thecloud based connection point for the application. The ACU manager mayspecify new user or select new system as it is in UI template 652. Thesystem could also support multiple studies, such as research studies inwhich the user has been given different credentials or a registrationcode which maps from the registration server to a unique program for theindividual user. Once completing the registration process, the user ispresented options for Study 1 662 and Study 2 663. UI template 660allows the user to participate and select a study. The studies, while inthe same application, are being managed uniquely by the server andprovide a unique set of ACU and AFUs for the individual to interactwith. For example, if Study 1 662 is a mental health study, then theindividual/participating user is shown the ACU 665 in a way thatcomplies with the program, aka Study. The same goes for Study 2 663,which in this case is an addiction study the user would interact withdifferently than the study number 1 662. Each ACU 665 and 667 mayutilize a base implementation defined by the system, but theconfiguration of the ACU and the features utilized may be customized tothe program, in which case the AFUs may appear completely different uponselecting. And after selecting, they may appear in the executed statecompletely different as well, leveraging alternate base configurationswith further customizations unique to that individual. ACU 665 in theexecuted state present AFU 669 and is forum single post style driven.ACU 667 in the executed state presents AFU 671 and is an open chat styledesign.

Storage Structure

FIG. 14 depicts ACU user storage structure 700. The ACUs are managed inpart for each user by the ACU user storage. The user installedapplication 701 will match ACUs 710 to the ACU user storage 712 anddownload/update AFU or ACU as needed 727 with any changes specified fromthe ACU user storage 712. This storage can be both locally and remotelymanaged. The user installed application 701 contains an AFU-useridentifiable 705 and 706 and an ACU-user identifiable 708, that arespecific to each particular user. The user installed application 701also contains an application interface 703 that controls display of theapplication on the device. The application matches ACUs 710 with the ACUuser storage 712 and uses this information to update and download theAFUs and ACUs 727 on the user device as needed. The ACU user storage 712contains ACU user identifiers 715 and 721. The ACU user identifiers 715and 721 contain AFU 715, 716, 717, 722, 723, and 724 and an ACU manager719 and 725.

FIG. 15 depicts ACU stock distribution storage center 750. New ACUs aredownloaded during initial application installation, or when the userspecifies to the ACU Manager, or if the ACU manager requires for anyreason, such as transferring a corrupted ACU for repair for example.This may appear as a stock distribution storage center or may beprogrammatic based on a sign-up code that identifies an ACU duringregistration. The installable-deployable application in operation with amulti-ACU 205 includes an ACU manager 161 overseeing one or multipledownloadable ACUs 230 and 240 and an application interface 124 todisplay the deployable application on the device. The downloadable ACU230 and 240 have multiple AFUs 235, 236, and 237 and an ACU 165. Thedeployable application 205 may include a variable amount of downloadableACUs depending on the application's functions. When the ACU Manager 161determines an ACU needs to be repaired or evaluated by the ACUstorage-stock distribution storage center 753, the ACU is transferred751. The ACU storage-stock distribution storage center containsdownloadable ACUs 760, 770 that are made up of ACU 769 and 779 and AFU765, 766, 767, 775, 776, and 777. The downloadable ACU 760 and 770 areused to recreate the damaged ACU and transferred back 755 to the userdevice.

Updating Workflow Flowcharts

FIG. 16 depicts a basic flowchart of the personalization of the ACUs andAFUs 800. The application is downloaded with initial ACU, AFU, andvariable service layers 801 (collectively referred to as B3). After theapplication is downloaded the initialization 802 process is activated,and the application may discover what is the user's dominant hand, whatis the preferred color, what font size is best, etc. Afterinitialization 802 the server or the base application will modify the B3based on whether the update is available locally 803. The server willmodify/update 805 B3 if the initial downloaded ACU, AFU and variableservice layer do not have the information for further personalization.If the B3 do contain the information for further personalization, theinitialization will be modified and updated 807 without consultationwith the server. After the modification/update of the initialization theapplication use by user is observed with machine learning 808. If the B3are in the initial application 809 the machine learning modifies andupdate the machine learning process 813 with application data, if the B3are not in the initial app 809 the machine learning communicates withthe server to modify and update 811 the process. As shown above theapplication is initially downloaded onto user device and during theregistration process the personalization/initialization begins by eitherthe user answering a list of questions or inputting an invite coderelevant to the specific user. The application uses sensing data andregistration data in order to choose appropriate ACU, AFU, and workflowsfrom the server or the downloaded application. The AFU will influencehow the information is displayed and the workflows give the optimalorder for the application user, such as the optimal size of applicationdisplay and type of text used. The different ACU, AFU, and workflowswill be tested by the machine learning to ensure optimal userinteractivity. The machine learning will store all results to furtherrefine the process.

FIG. 17 depicts a flow chart of how the workflow is modified 820. Theapplication is in use and an initial workflow is selected 821. As theapplication is used by the user the device is taking sensing data 822,i.e. whether the user is pounding on bottoms, listening to how activethe area is around the user, etc. The device reads the sensing data andID/flags user activity 823 and determines if the activity triggers analternative workflow 824. If the activity does not trigger analternative workflow the application will continue to use the initiallyselected workflow 821. If the system determines the activity triggers analternative workflow the system looks up a reference table ofalternative workflows 826 that correspond with flagged user activities.The system will modify the workflow based on template 827 and update theinitial workflow 828. If the system does not find an appropriatetemplate the system will create an alternative workflow and update theinitial workflow with the new template.

FIG. 18 depicts the process of modifying ACU, AFU and workflow 830 on auser's device. The application is in use and an initial workflow isselected 831, the system runs test 832, records the results 833 andcompares the results against aggregate data 834. If the systemdetermines that improvements can be made to increase interaction withthe application the system will implement either permanent or temporarychanges to the ACU, AFU, and workflows. If the test results show that nochanges would improve interaction it will keep the initial workflow 838.If changes are implemented they can either be temporary or permanent. Iftemporary changes are needed they application will analyze availableACU, AFU and workflow on client device 847. Based on the analysis theapplication will be modified based on available options 848 and thechanges to the app will be in use 849 until it reverts to the initialACU, AFU, and workflow selected 850. The modification of the application848 is specifically the updating of the ACU and AFU reference tables. Ifthe change is not temporary the application will download additionalACU, AFUs and workflows 842 and modify the application 843. Themodifications will be used 844 and the application will retain themodifications 845. An example of a temporary change is the system maymodify the AFU color while keeping the workflow consistent, the computermay run a test and find that the user responds best to one color, but inorder to maintain active participation they need to see a change ofscreen in a set sequence.

The present invention also provides a system capable of updating anapplication to one with an updated application configuration consistingof a new ACU, new AFUs or new workflows by utilizing ACUs, AFUs, andworkflow segments already resident on the device. The present inventionprovides a computing device comprising: at least one processor; and oneor more computer-readable storage devices for storing instructions.Those instructions, when executed by the processors, cause the computingdevice to receive or capture user interaction data, analyze the usagedata, and update the initial application configuration from a first ACU,AFU, or workflow to a second ACU, AFU, or workflow utilizing ACUs, AFUs,and workflow segments available on the device. Further, when thecomputing device receives, by the computing device and over a computernetwork, a first set of instructions stored on the computer-readabledevices, the first set of instructions including an initial applicationconfiguration, at least one application container unit, a plurality ofapplication feature units, and a plurality of application workflowsegments; the initial application configuration identifying a first ACU,a first set of AFUs from the plurality of AFUs, and a first workflow setfrom the plurality of workflow segments for the computing device to use.The device captures user interaction data with the initial applicationconfiguration and analyzes the user interaction data with the initialapplication configuration. After analyzing the device, the systemupdates the initial application configuration based on the userinteraction data to a second application configuration, which causes theset of instructions to use a second ACU, a second set of AFUs from theplurality of AFUs, or a second workflow set from the plurality ofworkflow segments.

Efficiency Improvements

FIG. 19 depicts the improvement to network utilization 875 and updatingof the application offered by the present invention from the currentstandard practice. The figure shows the network utilization of theapplication shown over time 876. The triggered events are the data beingdownloaded depicted by bars 877 (i, ii, iii, . . . n+1). Presently usersdownload the base deployment installation 881 of the application(iteration i 880) to their device. The user then goes through the firststage of program selection 884 (iteration ii 883), where the specificprogram may be selected by the user. Upon selection of the program aninitial configuration is determined based upon the program, which maynot be personalized if the user is new or unknown. For example, theapplication would be configured upon program selection 884, top providethe selected program (e.g. mental wellness screening). The programselection information received by the servers will then determine thecode to provide in the 2^(nd) deployment (iteration ii 883 and 877 ii).Initially, the information received by the user, or on the user device,will use broad categorizations to determine relevant information,initial ACU, AFUs, and workflows provided to the user. If there aresubsequent updates to the application, the system can update the programas a whole or can update only selected parts or elements (i.e. ACUs,AFUs, workflow segments).

Current applications or current systems provide only basicpersonalization (i.e. choosing a specific standard presetcategorization), if personalization is offered at all. In contrast, thepresent invention allows significant and iterative personalizationbeyond mere preset categorizations. During iteration iii 887 the userundergoes subsequent registration and initialization where an initialpersonality is matched 889. Once the system determined the initialpersonality profile, the system deploys an update 877 iii to the user'sdevice. Through user input, sensed data and usage data of theapplication, the system can determine appropriate personalityadjustments 893. Once those adjustments are determined, the system candeploy 877 iv updated code which results in iteration iv 891 of theapplication on the device. The system can continue to track user input,usage data, and sensed data and make additional personality adjustmentsand additional iterations deployed to the application. Additionally, thesystem can conduct machine experimentation 897 for that specific user orfor groups of users to determine potential enhancements or alternativeACUs, AFUs, and workflows as deployed to the device in iteration v 895.

The amount of time 876 to download or deploy application updated impactsthe overall efficiency of the network and network utilization. Thepresent invention improves network utilization by minimizing the amountof time and the amount of updates or information needed to be downloadedor deployed on the user's device each time the application isimproved/updated. The base deployment 881 is typically of a limited sizefrom a data perspective that is independent of the network utilization.Often, the size of the base deployment 881 may be limited by a 3^(rd)party network (i.e. Apple's App Store) to minimize the initialdeployment while the user is on the 3^(rd) party's network. The networkutilization 878 is a function of the iteration and the bandwidthavailable described as f(imax) over time required for the transactionalneeds between the client and the server(s), as depicted for the variousiterations, runs from an initial 0 time and bandwidth denoted by 879 andis depicted utilizing a network with a variable bandwidth increasing upto f(imax). The time and efficiency of each deployment and the networkefficiency is dependent on the ideal network connectivity and processingavailability of systems offered by the system's network. In theexemplary network, i.e. higher bandwidth, each deployment or iterationis downloaded in less time than a standard deployment or update ofcurrent applications deployed on user devices. The base deploymentinstallation 881 may be of a limited download size because theapplication may be available through a 3^(rd) party applicationstorefront which employs maximum initial application data or file sizerequirements. The download rate, depicted as the line height 882 fromthe download bar 877 i, for each iteration in FIG. 19 is depicted asbeing relatively constant to highlight or the network or deploymentefficiency in later iterations (887, 891, 895). The download times,represented by the slanted line 885 and the termination lines 888, 892,896 determine the total deployment of the install or update based onbandwidth f(imax) for each iteration which are also depicted bydeployment bars 877 (i, ii iii, iv, v). A longer the deployment bar 877is indicative of an installation or update with more code or data todeploy and install. A problem with current or existing applications,which need updates, is that it typically requires the applicationprovider to update the entire application or to update large segments ofthe application. Such large updates are customary because theapplications, if segmented, are segmented in large sections because theapplication as a whole (or the code of the application) is notstructured or architected in a way that segments the application'scontainers, features, and workflows. However, the present inventionprovides an improved and novel architecture which segments theapplication or code into logical modules related to the application'scontainer, features, and workflows. These modules may also be referredto as code elements, code particles, or code units. Therefore, theinstallation and updates, are smaller because only those code modules orelements which need to be added or updated need to be deployed. Thus, asevident in FIG. 19 , subsequent iterations (887, 891, 895) have adecreased amount of download and installation time necessary due to theselective and segmented downloads of only those modules or code elementswhich need to be updated or added.

FIG. 20 depicts the current process of a base deployment installation,iteration i 900. The user 901 goes to the application storefront 902,such as a mobile store or digital download, and installs the application903 and gets the basic interface for the user. The application 903 isinstalled and when the user launches the application for the first time908 the base package 905 is downloaded from the stock distributionstorage center 904. The base package 905 contains the actual AFU, ACU,and workflows to run the application. The base application is a simplepackage with placeholders for each subsequent file to be downloaded andused by the user. After the base package 905 is downloaded theapplication is ready for user input 909.

FIG. 21 depicts the program selection for initial personalization of anapplication, iteration ii 920. The user 921 selects the initial programor input with manual selection or through preselection, and theapplication 903 takes that information and the program package isdownloaded from the stock distribution storage center 904. The programpackage 923 includes default package programing 905, which includes thedefault ACU file and AFU files. There are variants on the ACU Files 925,926, 927, 928 and the AFU files 930, 931, 932, 933 based onpersonalities of the user. Such personality differences may be based onvarious analysis such as determined using Meyer-Briggs and similartesting. By way of example, Meyer-Briggs offers 16 personality variantswhich could be used during the initial personalization of theapplication 920. Initially, the user 921 can be placed in one of thethree most common Meyer-Briggs classification. As the user 921 interactswith the application 903 the personality variants assigned to the user921 can be refined. As the admin user adds more classifications orvariants for a given application or module, the user's association witha variant might change. The sensing data obtained through userinteraction with the application will further classify the user untilthe user is determined to be 1 of the 16 personality types. User datawill be used to constantly refine the personality variants presented touser 921. Upon such further association with a variant, the system cansend updated ACUs, AFUs, or workflows to provide a more personalexperience in line with the user's personality.

FIG. 22 depicts the personality selection or refinement process 940(iteration iii) of the network. After the initial program selectiondescribed in FIG. 21 , there is registration/initial personalitymatch-up selection. This is where the present invention improves onknown systems. The user registration is input manually, or externallysensed 941 by the application 903. This information is then used toselect personality package downloads from the storage-stock distributionstorage center 904. The personality variants of the ACU files 925, 926,927, 928 and AFU files 930, 931, 932, 933 are mapped using personalityclassifier mapping 947 downloaded from personality mapping storage 946.The personality classifier mapping is based on user responses. Theserver will review the responses and match particular personalities tothe appropriate personality variant ACU files 925, 926, 927, 928 and AFUfiles 930, 931, 932, 933.

FIG. 23 depicts the adjustment of personality selection done initeration iv and v 960. After the program is selected and user input isassessed the system allows for regional adjustment to the programwithout having to download the entire application. The adjustments madeto the application can change and shift dynamically as the users usesthe app. Presently application usage needs to be paused as an update isinstalled, the present invention allows the user to continue to use theapplication as an update is made, as the updates will only refine AFU'snot replace AFUs in their entirety. The user 961 continues to use theapplication 903 and this information/input modifies the applicationusing the stock distribution storage center 904. Adjustments 965 aremade to AFUs and ACUs using the personality classifier mapping 947 andmachine experimentation 967. Machine experimentation 967 can overridepersonality classifier mapping 947. In machine experimentation 967specific AFU files 968 are marked with personality classifier override969. The different machine experimentation 967 are stored in in machineexperiments storage 970. The machine experimentation 967 targetsspecific AFU files 968 to allow for the targeted updates that allowcontinued usage of the device as an update install.

FIG. 24 depicts network usage of the system 975 of the present inventionthrough each iteration based on elements needing to be deployed.Iteration i and Iteration ii are typical of the amount of network usageneeded for known or current systems. Iteration iii, iv and v illustratethe network usage and related benefits that occur in the presentinvention. Iteration i is the base program 976 downloaded from theapplication storefront. The package is a base package consisting of askeleton ACU, AFU and workflow.

By way of example, and for illustrating the network usage benefits, thefollowing description will provide standard ranges and indicate atypical scenario, neither of which are intended to limit the scope ofthe invention. For example, the base package may be in a range of 1-100MB (i.e. about 5 MB) to meet storefront requirements. Iteration ii isthe program 980 downloaded as a whole. The application storefront onlyallows application makers to upload a skeletal program so as not to takeup too much space in the store, and when the user first opens theinstalled app, the application completes its download. In an exemplarymodel the application downloads ACU 1 and AFU 123, which may in a rangeof 50-400 MB (i.e. about 200 MB). Iteration iii is the firstpersonality-based selection 982 of AFUs, and the application beginsreplacing general AFUs with more user specific AFUs. In the depictedexample, the system requires or deploys a packet in a range of about 5MB to 120 MB, which is only a fraction of the complete application image(i.e. a 20 MB packet deployment instead of an entire application updateat 120+MB) since the present invention only needs to replace AFU 123with AFU 456. Iteration iv depicts the continued personalityadjustments, with AFUs being updated with sub-programs (i.e. AFU 456being refined to AFU 456.2). In the depicted example for iteration iv,the system would only need or require about 20-25% of iteration iii(i.e. 4 MB of the 20 MB example used above) to download. If the updatein iteration iii was a larger update (i.e. 60 MB) then the iteration ivupdate would also be larger but still proportional (i.e. 15 MB). FIG. 24also depicts, iteration v which shows the machine refinement 986 whereAFU 456.2 is replaced with AFU 456.2.1. In this instance, the systemwould only need to deploy about 20-25% of iteration iv deployment (i.e.about 1 MB of the 4 MB iteration iv deployment). If the update initeration iv was larger (i.e. 15 Mb) then the iteration v update wouldalso be larger but still fairly proportional (i.e. 4 MB). In betweeneach iteration are workflows 978 which can also be updated and refined.The present invention provides a system and architecture which enablesthat each subsequent download requires less network usage becauseupdates are selectively done to personality specific ACUs, AFUs, andworkflows.

Code Modules

FIG. 25 depicts the encapsulated traffic between the server and thedevice. Encapsulated traffic is when the server has a view of what theclient device is doing and can make changes to specific areas of code onthe client device in specific files 1001. The server looks at thatprevious version synchronized 1003 on the device. Based on changes madeby an admin, the machine, or new information based on modules in theserver, the previous code is compared with the new version 1005. Theserver compares the previous application or code and the new code andidentifies what is the same and what is different and determined the“delta” 1007. The delta is transmitted with a message start and messageend 1009 over a communication path or network. The delta 1007 containsthe update and is reconstituted 1011 on the client device, with only thedelta section being changed.

Another novel aspect of the present invention is the ability toselectively deploy portions of code for update the application bydeploying segmented code portions or code modules without having toupdate large sections of codes. The present invention is capable ofproviding a computing device comprising: one or more processors, and oneor more computer-readable storage devices for storing instructions that,when executed by the one or more processors, cause the computing deviceto perform operations comprising: receiving, by the computing device andover a computer network, a set of instructions (i.e. softwareapplication) stored on the computer-readable devices, the set ofinstructions including a plurality of code modules; a first set of codemodules, of the plurality of code modules, configured to provide aninitial AFU; capturing user interaction data with the application;analyzing the user interaction data; determining a preferred AFUavailable; retrieving or deploying, from a remote computing device, aselect set of code modules added to the plurality of code modules;connecting a second set of code modules configured to provide a secondAFU; and updating the application to utilize the second AFU. The presentinvention can also make use of the same operations and methods to updatefrom a first to second ACU or workflow segment. The ACU, AFU, orworkflow could also be updated versions of the original ACU, AFU, orworkflow segments instead of alternative containers, features, orworkflow segments.

FIG. 26 depicts a code DNA module 1020. DNA relates to the concept ofdeoxyribonucleic acid or DNA as a reference into how code modules makeup the genetic structure of the application and can be combined in manydifferent ways as application fabric to create new uses and purposes ofthe software for scientific research and user engagements. The code DNAmodule 1020 is the smallest block of definable code, it may be a method,a code or a library. If a library, it can be third party elements, orcode created for a specific reason. In an exemplary embodiment, Code DNAmodule 1020 is the genetic makeup of the application on the device. Thecode DNA module 1020 is made up of method/inputs 1021,reference/defaults 1023, enable/disable 1025, logging 1028, and methodresponse 1026. If the code DNA module 1020 is not in use it may remainon the device in a dormant state to be activated as needed. Combiningcode modules to interact with each other could be by stitching, mending,joining, or coding the modules; or by coding the integration or use of areference table which pulls or activates the appropriate code moduleswhen needed.

FIG. 27 depicts how the code DNA modules 1020 are stitched together inthe application and interact with Configuration files 1030 and resourcefiles 1035. The configuration files 1030 are the code defining usage ofcode DNA modules 1020. The configuration files 1030 define the methodsor inputs 1021 for each code module 1020, how the modules 1020 will beutilized, in which situations the code modules will be used. Theconfiguration file or element will enable or disable 1025 the module1020 based on inputs, application configuration, and sensor or userinteraction received by the device. The resource files 1035 are images,audio, haptic feedback, colors, shapes, etc. The resource files 1035 areutilized by the module 1020 through a communication link 1023 and,depending on various inputs, may override the defaults for a givensituation. The code modules 1020 may also log 1028 all or certainactivities and may be altered or responsive to the method responseoutputs 1026 which can be further defined as inputs to another differentcode module 1020 based on interaction defined with Configuration files1030 and pattern files 1041.

FIG. 28 depicts the pattern files 1041, which is code connecting thecode DNA modules 1020 together. The business layer 1043 and presentationlayer 1042 of the client-side architecture is comprised of patternfiles. The pattern files are depicted by Various Code DNA modules 1020which comprise the application fabric 1045. The patterns are arrangedfor convenience in ACU and AFU structures to help with managing the codemodules 1020 on the client and server side.

FIG. 29 , in combination with FIG. 30 , is a visualization of an updateto an application on device as AFUs are updated. The Core ACUFunctionality 1052 which highlights some of the similar graphicalelements within the application container remain consistent between thecurrent application (on the left side of FIGS. 29 and 30 ) and theupdated application (on the right side of Sigs. 29 and 30). The code DNAmodules 1020 are arranged in the application fabric 1045. The activatecode modules 1020 are indicated in the application fabric 1045 as crossline patterned blocks while inactive modules are white or blank. Evidentin FIG. 29 , the block 1051 of code DNA modules 1020, within fabric1045, for the Core ACU Functionality 1052 are the same on the currentapplication (left) and updated application (right).

FIG. 30 is the depiction of the different code DNA modules 1020 that areactivated or deactivated for different AFUs. Specifically, FIG. 30 showsthe changes of the application and related code modules 1020 during achance from AFU4 to AFU2. The code DNA modules 1020 are depicted by agrid of code modules within the code fabric 1045. In the currentapplication (left), AFU 4, which for exemplary purposes is formulti-user chat 1056, is being changed to AFU2, which is for a singlestream chat 1058.

Due to the AFU4 to AFU2 change, various features and reference files aremodified. For example, image tools 1064 are activated as depicted by afour by four grid of code modules 1020 with four of the code modules1020 activated. However, in AFU2, the image tools 1064 are no longerneeded so the activated modules are deactivated. Further, for example,in AFU2 a multi-user chat function 1061 is more advantageous and isactivate, but in AFU4 the system has determined, or the user hasselected to interact with a single stream chat function 1060. Thecurrent application (left) shows various code DNA module 1020 in theMulti-User Chat modeling block 1061 are activated while the Multi-UserChat Modeling module 1061 is turned off (by deactivating the codemodules 1020) in the updated application (right). Similarly, the SingleStream Chat 1060 on the current application (left) contains no activecode modules 1020 while the updated application (right) has active codemodules 1020 in the Single Stream Chat block 1060. It is important tonote that various code modules 1020 within a block (for example—Imagetools 1064, Multi-User chat 1061, or Single Stream Chat 1060) are activeor inactive as the feature or function can be tailored or personalizedin its appearance and functions based on the user's preferences, devicelimitations, or system determined preferences.

At the same time as the update to AFU4 to AFU2 is taking place, thesystem does not need to update all blocks or modules 1020. For example,the ACU (block 1051) did not change, nor did the server API Calls 1065,or the Actions 1068, which are all active in both AFU4 and AFU2. Byenabling a code module 1020 fabric 1045, the system of the presentinvention enables individual code modules 1020 to be updated or added aswell as blocks of code modules 1020 which might provide completely newfeatures, functions, ACUs, AFUs, or workflows.

The system of the present invention may make use of various identifiersfor the code modules or code elements, blocks of code modules, ACUs,AFUs, workflow sets or segments, and users. As depicted in FIG. 14 , theACU and AFUs have programmatic identifiable aspects. Such identifiersmay consist of unique identifiers (UIDs) which may have aspects in eachUID to identify the element type (ACU, AFU, specific workflow, codemodule, user element) as well as the location within the applicationfabric to allow for easier change detection, updating or replacing.Further, the UIDs can be used by the managed configuration element(file, table, code) to identify which elements are active or inactive,such as code module individual configurations and pattern programingwhich can be used to determine the grouping assignments by whichvariations of ACUs, AFUs, and workflow segments are considered to beactive or inactive. Such UID may be any combination or keywords,numbers, characters, letters, alpha-numeric, or code-based identifiers.

The systems and methods of the invention in described embodiments may beimplemented as a system, method, apparatus or article of manufactureusing programming and/or engineering techniques related to software,firmware, hardware, or any combination thereof. The described operationsmay be implemented as code maintained in a “computer readable medium”,where a processor may read and execute the code from the computerreadable medium. A computer readable medium may comprise media such asmagnetic storage medium (e.g., hard disk drives, floppy disks, tape,etc.), optical storage (CD-ROMs, DVDs, optical disks, etc.), volatileand non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs,DRAMs, SRAMs, Flash Memory, firmware, programmable logic, etc.), etc.The code implementing the described operations may be furtherimplemented in hardware logic (e.g., an integrated circuit chip,Programmable Gate Array (PGA), Application Specific Integrated Circuit(ASIC), etc.). Still further, the code implementing the describedoperations may be implemented in “transmission signals”, wheretransmission signals may propagate through space or through atransmission media, such as an optical fiber, copper wire, etc. Thetransmission signals in which the code or logic is encoded may furthercomprise a wireless signal, satellite transmission, radio waves,infrared signals, Bluetooth, etc. The transmission signals in which thecode or logic is encoded is capable of being transmitted by atransmitting station and received by a receiving station, where the codeor logic encoded in the transmission signal may be decoded and stored inhardware or a computer readable medium at the receiving and transmittingstations or devices. An “article of manufacture” comprises computerreadable medium, hardware logic, and/or transmission signals in whichcode may be implemented. A device in which the code implementing thedescribed embodiments of operations is encoded may comprise a computerreadable medium or hardware logic. Of course, those skilled in the artwill recognize that many modifications may be made to this configurationwithout departing from the scope of the present invention, and that thearticle of manufacture may comprise suitable information bearing mediumknown in the art.

In an embodiment of the invention, the systems and methods use networks,wherein, the term, ‘networks’ means a system allowing interactionbetween two or more electronic devices and includes any form ofinter/intra enterprise environment such as the world wide web, LocalArea Network (LAN), Wide Area Network (WAN), Storage Area Network (SAN)or any form of Intranet.

In an embodiment of the invention, the systems and methods can bepracticed using any electronic device. An electronic device for thepurpose of this invention is selected from any device capable ofprocessing or representing data to a recipient and user and providingaccess to a network or any system similar to the internet, wherein theelectronic device may be selected from but not limited to, personalcomputers, mobile phones, laptops, palmtops, tablets, portable mediaplayers and personal digital assistants.

As noted above, the processing machine used to implement the inventionmay be a suitable computer or other processing machine. The processingmachine may also utilize (or be in the form of) any of a wide variety ofother technologies including a special purpose computer, a computersystem including a microcomputer, mini-computer or mainframe forexample, a programmed microprocessor, a micro-controller, a peripheralintegrated circuit element, a CSIC (Consumer Specific IntegratedCircuit) or ASIC (Application Specific Integrated Circuit) or otherintegrated circuit, a logic circuit, a digital signal processor, aprogrammable logic device such as a FPGA, PLD, PLA or PAL, or any otherdevice or arrangement of devices that is capable of implementing thesteps of the processes of the invention.

The processing machine used to implement the invention may utilize asuitable operating system (OS). Thus, embodiments of the invention mayinclude a processing machine running the Unix operating system, theApple iOS operating system, the Linux operating system, the Xenixoperating system, the IBM AIX™ operating system, the Hewlett-Packard UX™operating system, the Novell Netware™ operating system, the SunMicrosystems Solaris™ operating system, the OS/2™ operating system, theBeOS™ operating system, the Macintosh operating system (such as macOS™),the Apache operating system, an OpenStep™ operating system, the Android™operating system (and variations distributed by Samsung, HTC, Huawei,LG, Motorola, Google, Blackberry, among others), the Windows 10™operating system, the Windows Phone operating system, the Windows 8™operating system, Microsoft Windows™ Vista™ operating system, theMicrosoft Windows™ XP™ operating system, the Microsoft Windows™ NT™operating system, the Windows™ 2000 operating system, or anotheroperating system or platform.

The systems and methods of the invention may utilize non-operatingsystems (aka serverless architecture) as well for distributedprocessing. In the processing of the invention, services on cloudcomputing networks leveraging systems like AWS (as offered by Amazon WebServices, Inc.), BlueMix (as offered by IBM), and Microsoft Azure, canperform data collection services using varying technologies that arespun up on demand using tools like Chef to create container-baseddeployments like Docker, or non-container compute services (e.g. AWSLambda).

The invention provides real-time analytics processing that requiresscale on demand to the recipients and users in the system, in accordancewith at least one embodiment of the invention. Such offerings as AWSlambda and Kinesis (as offered by Amazon Web Services, Inc.) are amongthose that may be used in implementation of the invention. For example,AWS Lambda may be utilized to execute code (to perform processes of theinvention) in response to various triggers including data changes,shifts in system state, or particular action taken by recipients andusers. Similarly, in an embodiment, the OS (operating system) of theinvention might be encapsulated in an EC2 instance (as offered by AmazonWeb Services, Inc.) or multiple instances for deployment.

It is appreciated that in order to practice the method of the inventionas described above, it is not necessary that the processors and/or thememories of the processing machine be physically located in the samegeographical place. That is, each of the processors and the memoriesused by the processing machine may be located in geographically distinctlocations and connected so as to communicate in any suitable manner,such as over a network of over multiple networks. Additionally, it isappreciated that each of the processor and/or the memory may be composedof different physical pieces of equipment. Accordingly, it is notnecessary that the processor be one single piece of equipment in onelocation and that the memory be another single piece of equipment inanother location. That is, it is contemplated that the processor may betwo pieces of equipment in two different physical locations. The twodistinct pieces of equipment may be connected in any suitable manner.Additionally, the memory may include two or more portions of memory intwo or more physical locations.

To explain further, processing as described above is performed byvarious components and various memories. However, it is appreciated thatthe processing performed by two distinct components as described abovemay, in accordance with a further embodiment of the invention, beperformed by a single component. Further, the processing performed byone distinct component as described above may be performed by twodistinct components. In a similar manner, the memory storage performedby two distinct memory portions as described above may, in accordancewith a further embodiment of the invention, be performed by a singlememory portion. Further, the memory storage performed by one distinctmemory portion as described above may be performed by two memoryportions.

Further, as also described above, various technologies may be used toprovide communication between the various processors and/or memories, aswell as to allow the processors and/or the memories of the invention tocommunicate with any other entity; i.e., so as to obtain furtherinstructions or to access and use remote memory stores, for example.Such technologies used to provide such communication might include anetwork, the Internet, Intranet, Extranet, LAN, an Ethernet, or anyclient server system that provides communication, for example. Suchcommunications technologies may use any suitable protocol such asTCP/IP, UDP, or OSI, for example.

Further, multiple applications may be utilized to perform the variousprocessing of the invention. Such multiple applications may be on thesame network or adjacent networks, and split between non-cloud hardware,including local (on-premises) computing systems, and cloud computingresources, for example. Further, the systems and methods of theinvention may use IPC (interprocess communication) style communicationfor module level communication. Various known IPC mechanisms may beutilized in the processing of the invention including, for example,shared memory (in which processes are provided access to the same memoryblock in conjunction with creating a buffer, which is shared, for theprocesses to communicate with each other), data records accessible bymultiple processes at one time, and message passing (that allowsapplications to communicate using message queues).

As described above, a set of instructions is used in the processing ofthe invention. The set of instructions may be in the form of a programor software. The software may be in the form of system software orapplication software, for example. The software might also be in theform of a collection of separate programs, a program module within alarger program, or a portion of a program module, for example. Thesoftware used might also include modular programming in the form ofobject oriented programming. The software tells the processing machinewhat to do with the data being processed.

Further, it is appreciated that the instructions or set of instructionsused in the implementation and operation of the invention may be in asuitable form such that the processing machine may read theinstructions. For example, the instructions that form a program may bein the form of a suitable programming language, which is converted tomachine language or object code to allow the processor or processors toread the instructions. That is, written lines of programming code orsource code, in a particular programming language, are converted tomachine language using a compiler, assembler or interpreter. The machinelanguage is binary coded machine instructions that are specific to aparticular type of processing machine, i.e., to a particular type ofcomputer, for example. The computer understands the machine language.

Any suitable programming language may be used in accordance with thevarious embodiments of the invention. Illustratively, the programminglanguage used may include assembly language, Ada, APL, Basic, C, C++,C#, Objective C, COBOL, dBase, Forth, Fortran, Java, Modula-2, Node.JS,Pascal, Prolog, Python, REXX, Visual Basic, and/or JavaScript, forexample. Further, it is not necessary that a single type of instructionsor single programming language be utilized in conjunction with theoperation of the system and method of the invention. Rather, any numberof different programming languages may be utilized as is necessary ordesirable.

Also, the instructions and/or data used in the practice of the inventionmay utilize any compression or encryption technique or algorithm, as maybe desired. An encryption module might be used to encrypt data. Further,files or other data may be decrypted using a suitable decryption module,for example.

As described above, the invention may illustratively be embodied in theform of a processing machine, including a computer or computer system,for example, that includes at least one memory. It is to be appreciatedthat the set of instructions, i.e., the software for example, thatenables the computer operating system to perform the operationsdescribed above may be contained on any of a wide variety of media ormedium, as desired. Further, the data that is processed by the set ofinstructions might also be contained on any of a wide variety of mediaor medium. That is, the particular medium, i.e., the memory in theprocessing machine, utilized to hold the set of instructions and/or thedata used in the invention may take on any of a variety of physicalforms or transmissions, for example. Illustratively, as also describedabove, the medium may be in the form of paper, paper transparencies, acompact disk, a DVD, an integrated circuit, a hard disk, a floppy disk,an optical disk, a magnetic tape, a RAM, a ROM, a PROM, a EPROM, a wire,a cable, a fiber, communications channel, a satellite transmissions orother remote transmission, as well as any other medium or source of datathat may be read by the processors of the invention.

Further, the memory or memories used in the processing machine thatimplements the invention may be in any of a wide variety of forms toallow the memory to hold instructions, data, or other information, as isdesired. Thus, the memory might be in the form of a database to holddata. The database might use any desired arrangement of files such as aflat file arrangement or a relational database arrangement, for example.

In the system and method of the invention, a variety of “recipientinterfaces” or “user interfaces” may be utilized to allow a recipient oruser to interface with the processing machine or machines that are usedto implement the invention. As used herein, a recipient or userinterface includes any hardware, software, or combination of hardwareand software used by the processing machine that allows a recipient oruser to interact with the processing machine. A recipient or userinterface may be in the form of a dialogue screen for example. Arecipient or user interface may also include any of a mouse, touchscreen, keyboard, voice reader, voice recognizer, dialogue screen, menubox, list, checkbox, toggle switch, a pushbutton or any other devicethat allows a recipient or user to receive information regarding theoperation of the processing machine as it processes a set ofinstructions and/or provide the processing machine with information.Accordingly, the recipient or user interface is any device that providescommunication between a recipient or user and a processing machine. Theinformation provided by the recipient or user to the processing machinethrough the recipient or user interface may be in the form of a command,a selection of data, or some other input, for example.

As discussed above, a recipient or user interface is utilized by theprocessing machine that performs a set of instructions such that theprocessing machine processes data for a recipient or user. The recipientor user interface is typically used by the processing machine forinteracting with a recipient or user either to convey information orreceive information from the recipient or user. However, it should beappreciated that in accordance with some embodiments of the system andmethod of the invention, it is not necessary that a human recipient oruser interact with a recipient or user interface used by the processingmachine of the invention. Rather, it is also contemplated that therecipient or user interface of the invention might interact, i.e.,convey and receive information, with another processing machine, ratherthan a human recipient or user. Accordingly, the other processingmachine might be characterized as a recipient or user. Further, it iscontemplated that a recipient or user interface utilized in the systemand method of the invention may interact partially with anotherprocessing machine or processing machines, while also interactingpartially with a human recipient or user.

What is claimed is:
 1. A method performed by one or more computers, themethod comprising: storing, by the one or more computers, datadescribing (i) a set of application features available for a softwareapplication and (ii) program data for different programs providedthrough the software application, the application features representingdifferent functions or modules in a repository, wherein the differentprograms are provided using different combinations of the applicationfeatures in the repository, wherein at least some of the applicationfeatures correspond to displayable elements that can be displayed in thesoftware application; receiving, by the one or more computers, userinteraction data from an electronic device over a computer network, theuser interaction data indicating user interaction with the userinterface of the software application by a user of the electronicdevice; based on the user interaction data, selecting, by the one ormore computers, a set of application features from the repository toenable for the software application at the electronic device; andsending, by the one or more computers, configuration data to theelectronic device over the computer network, the configuration databeing configured to customize the software application by enabling theselected set of application features, the configuration data specifyingconnections among the selected set of application features, wherein (i)one or more of the connections specify a sequence in which at least someof the application features in the set of application features are usedand (ii) one or more of the connections specify an exchange of dataamong at least some of the application features in the selected set ofapplication features.
 2. The method of claim 1, wherein the selected setof application features correspond to one or more software elementsstored at the electronic device prior to sending the configuration data,wherein the configuration data is configured to cause the softwareapplication to enable the one or more software elements stored at theelectronic device prior to sending the configuration data.
 3. The methodof claim 1, wherein the configuration data specifies one or moreidentifiers for application features to enable at the electronic device.4. The method of claim 1, wherein the configuration data specifies oneor more identifiers for application features to disable at theelectronic device.
 5. The method of claim 1, wherein the set ofapplication features comprises application features configured to readdata from different sensors.
 6. The method of claim 5, wherein thedifferent sensors comprise at least one of a proximity sensor, anenvironmental sensor, a location sensor, a temperature sensor, or asensor for physiological measurement.
 7. The method of claim 1, furthercomprising: receiving user interaction data for the software applicationfor each of multiple electronic devices that have the softwareapplication installed; and sending different configuration data to therespective electronic devices to cause different sets of the applicationfeatures to be enabled for the software application at the respectiveelectronic devices.
 8. The method of claim 1, wherein at least some ofthe different combinations of the application features share one or moreapplication features.
 9. The method of claim 1, comprising determining ascore indicating of a personality characteristic for the user; andwherein the one or more application features are selected based on thepersonality characteristic.
 10. The method of claim 1, furthercomprising repeatedly adjusting the configuration of the softwareapplication over time to customize the software application for apattern of use of the software application by the user.
 11. The methodof claim 1, wherein the software application is a software applicationinstalled on the electronic device, and wherein the method furthercomprises: determining that at least one application feature of theselected set of application features is not stored at the electronicdevice; and in response to determining that the at least one applicationfeature is not stored at the electronic device, sending the at least oneapplication feature to the electronic device over the computer network.12. The method of claim 1, wherein the configuration data is configuredto cause the electronic device to perform operations comprising:retrieving an additional application feature for the application overthe computer network; and updating the application configuration toutilize the retrieved application feature.
 13. The method of claim 1,further comprising transferring, over the computer network, at least oneapplication feature for the software application to the electronicdevice.
 14. The method of claim 1, further comprising: receivingadditional user interaction data over the computer network; based on theadditional user interaction data, providing, over the computer network,configuration data indicating a changed configuration of the softwareapplication that specifies a changed set of application features to beenabled for the software application.
 15. The method of claim 1,comprising obtaining sensor data generated using one or more sensors ofthe electronic device or of a device in communication with theelectronic device; wherein customizing the application comprisescustomizing the application based on the user input and the sensor data.16. The method of claim 15, wherein customizing the application for theuser comprises enabling or disabling a module of the application basedon the sensor data.
 17. The method of claim 1, wherein the connectionsamong the selected set of application features include at least oneconnection that sets an output of one of the application features as aninput to another one of the application features.
 18. The method ofclaim 1, wherein the selected set of application features comprisesmultiple displayable user interface elements, and wherein theconnections among the selected set of application features specify oneor more sequences in which to display the displayable user interfaceelements in the software application.
 19. A system comprising: one ormore computers; and one or more computer-readable media storinginstructions that are operable, when executed by the one or morecomputers, to cause the system to perform operations comprising:storing, by the one or more computers, data describing (i) a set ofapplication features available for a software application and (ii)program data for different programs provided through the softwareapplication, the application features representing different functionsor modules in a repository, wherein the different programs are providedusing different combinations of the application features in therepository, wherein at least some of the application features correspondto displayable elements that can be displayed in the softwareapplication; receiving, by the one or more computers, user interactiondata from an electronic device over a computer network, the userinteraction data indicating user interaction with the user interface ofthe software application by a user of the electronic device; based onthe user interaction data, selecting, by the one or more computers, aset of application features from the repository to enable for thesoftware application at the electronic device; and sending, by the oneor more computers, configuration data to the electronic device over thecomputer network, the configuration data being configured to customizethe software application by enabling the selected set of applicationfeatures, the configuration data specifying connections among theselected set of application features, wherein (i) one or more of theconnections specify a sequence in which at least some of the applicationfeatures in the set of application features are used and (ii) one ormore of the connections specify an exchange of data among at least someof the application features in the selected set of application features.20. One or more non-transitory computer-readable media storinginstructions that are operable, when executed by the one or morecomputers, to cause the one or more computers to perform operationscomprising: storing, by the one or more computers, data describing (i) aset of application features available for a software application and(ii) program data for different programs provided through the softwareapplication, the application features representing different functionsor modules in a repository, wherein the different programs are providedusing different combinations of the application features in therepository, wherein at least some of the application features correspondto displayable elements that can be displayed in the softwareapplication; receiving, by the one or more computers, user interactiondata from an electronic device over a computer network, the userinteraction data indicating user interaction with the user interface ofthe software application by a user of the electronic device; based onthe user interaction data, selecting, by the one or more computers, aset of application features from the repository to enable for thesoftware application at the electronic device; and sending, by the oneor more computers, configuration data to the electronic device over thecomputer network, the configuration data being configured to customizethe software application by enabling the selected set of applicationfeatures, the configuration data specifying connections among theselected set of application features, wherein (i) one or more of theconnections specify a sequence in which at least some of the applicationfeatures in the set of application features are used and (ii) one ormore of the connections specify an exchange of data among at least someof the application features in the selected set of application features.